1 /*
2  * Copyright (C) 2006, 2007, 2008, 2009 Winfried Koehler
3  * Copyright (C) 2014 Akihiro Tsukada
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation version 2.1 of the License.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this program. if not, see <http://www.gnu.org/licenses/>.
16  *
17  */
18 
19 /**
20  * @file countries.h
21  * @ingroup ancillary
22  * @brief Provides ancillary code to convert ISO 3166-1 country codes
23  * @copyright GNU Lesser General Public License version 2.1 (LGPLv2.1)
24  * @author Winfried Koehler
25  * @author Akihiro Tsukada
26  *
27  * @par Bug Report
28  * Please submit bug reports and patches to linux-media@vger.kernel.org
29  */
30 
31 module libdvbv5_d.countries;
32 
33 extern (C):
34 
35 /**
36  * @enum dvb_country_t
37  * @brief ISO-3166-1 alpha-2 country code
38  * @ingroup ancillary
39  *
40  * @var COUNTRY_UNKNOWN
41  *	@brief (Unknown Country)
42  * @var AD
43  *	@brief Andorra
44  * @var AE
45  *	@brief United Arab Emirates
46  * @var AF
47  *	@brief Afghanistan
48  * @var AG
49  *	@brief Antigua and Barbuda
50  * @var AI
51  *	@brief Anguilla
52  * @var AL
53  *	@brief Albania
54  * @var AM
55  *	@brief Armenia
56  * @var AO
57  *	@brief Angola
58  * @var AQ
59  *	@brief Antarctica
60  * @var AR
61  *	@brief Argentina
62  * @var AS
63  *	@brief American Samoa
64  * @var AT
65  *	@brief Austria
66  * @var AU
67  *	@brief Australia
68  * @var AW
69  *	@brief Aruba
70  * @var AX
71  *	@brief Aland Islands
72  * @var AZ
73  *	@brief Azerbaijan
74  * @var BA
75  *	@brief Bosnia and Herzegovina
76  * @var BB
77  *	@brief Barbados
78  * @var BD
79  *	@brief Bangladesh
80  * @var BE
81  *	@brief Belgium
82  * @var BF
83  *	@brief Burkina Faso
84  * @var BG
85  *	@brief Bulgaria
86  * @var BH
87  *	@brief Bahrain
88  * @var BI
89  *	@brief Burundi
90  * @var BJ
91  *	@brief Benin
92  * @var BL
93  *	@brief Saint Barthelemy
94  * @var BM
95  *	@brief Bermuda
96  * @var BN
97  *	@brief Brunei Darussalam
98  * @var BO
99  *	@brief Plurinational State of Bolivia
100  * @var BQ
101  *	@brief Bonaire, Saint Eustatius and Saba
102  * @var BR
103  *	@brief Brazil
104  * @var BS
105  *	@brief Bahamas
106  * @var BT
107  *	@brief Bhutan
108  * @var BV
109  *	@brief Bouvet Island
110  * @var BW
111  *	@brief Botswana
112  * @var BY
113  *	@brief Belarus
114  * @var BZ
115  *	@brief Belize
116  * @var CA
117  *	@brief Canada
118  * @var CC
119  *	@brief Cocos (Keeling) Islands
120  * @var CD
121  *	@brief The Democratic Republic of the Congo
122  * @var CF
123  *	@brief Central African Republic
124  * @var CG
125  *	@brief Congo
126  * @var CH
127  *	@brief Switzerland
128  * @var CI
129  *	@brief Cote d'Ivoire
130  * @var CK
131  *	@brief Cook Islands
132  * @var CL
133  *	@brief Chile
134  * @var CM
135  *	@brief Cameroon
136  * @var CN
137  *	@brief China
138  * @var CO
139  *	@brief Colombia
140  * @var CR
141  *	@brief Costa Rica
142  * @var CU
143  *	@brief Cuba
144  * @var CV
145  *	@brief Cape Verde
146  * @var CW
147  *	@brief Curacao
148  * @var CX
149  *	@brief Christmas Island
150  * @var CY
151  *	@brief Cyprus
152  * @var CZ
153  *	@brief Czech Republic
154  * @var DE
155  *	@brief Germany
156  * @var DJ
157  *	@brief Djibouti
158  * @var DK
159  *	@brief Denmark
160  * @var DM
161  *	@brief Dominica
162  * @var DO
163  *	@brief Dominican Republic
164  * @var DZ
165  *	@brief Algeria
166  * @var EC
167  *	@brief Ecuador
168  * @var EE
169  *	@brief Estonia
170  * @var EG
171  *	@brief Egypt
172  * @var EH
173  *	@brief Western Sahara
174  * @var ER
175  *	@brief Eritrea
176  * @var ES
177  *	@brief Spain
178  * @var ET
179  *	@brief Ethiopia
180  * @var FI
181  *	@brief Finland
182  * @var FJ
183  *	@brief Fiji
184  * @var FK
185  *	@brief Falkland Islands (Malvinas)
186  * @var FM
187  *	@brief Federated States of Micronesia
188  * @var FO
189  *	@brief Faroe Islands
190  * @var FR
191  *	@brief France
192  * @var GA
193  *	@brief Gabon
194  * @var GB
195  *	@brief United Kingdom
196  * @var GD
197  *	@brief Grenada
198  * @var GE
199  *	@brief Georgia
200  * @var GF
201  *	@brief French Guiana
202  * @var GG
203  *	@brief Guernsey
204  * @var GH
205  *	@brief Ghana
206  * @var GI
207  *	@brief Gibraltar
208  * @var GL
209  *	@brief Greenland
210  * @var GM
211  *	@brief Gambia
212  * @var GN
213  *	@brief Guinea
214  * @var GP
215  *	@brief Guadeloupe
216  * @var GQ
217  *	@brief Equatorial Guinea
218  * @var GR
219  *	@brief Greece
220  * @var GS
221  *	@brief South Georgia and the South Sandwich Islands
222  * @var GT
223  *	@brief Guatemala
224  * @var GU
225  *	@brief Guam
226  * @var GW
227  *	@brief Guinea-Bissau
228  * @var GY
229  *	@brief Guyana
230  * @var HK
231  *	@brief Hong Kong
232  * @var HM
233  *	@brief Heard Island and McDonald Islands
234  * @var HN
235  *	@brief Honduras
236  * @var HR
237  *	@brief Croatia
238  * @var HT
239  *	@brief Haiti
240  * @var HU
241  *	@brief Hungary
242  * @var ID
243  *	@brief Indonesia
244  * @var IE
245  *	@brief Ireland
246  * @var IL
247  *	@brief Israel
248  * @var IM
249  *	@brief Isle of Man
250  * @var IN
251  *	@brief India
252  * @var IO
253  *	@brief British Indian Ocean Territory
254  * @var IQ
255  *	@brief Iraq
256  * @var IR
257  *	@brief Islamic Republic of Iran
258  * @var IS
259  *	@brief Iceland
260  * @var IT
261  *	@brief Italy
262  * @var JE
263  *	@brief Jersey
264  * @var JM
265  *	@brief Jamaica
266  * @var JO
267  *	@brief Jordan
268  * @var JP
269  *	@brief Japan
270  * @var KE
271  *	@brief Kenya
272  * @var KG
273  *	@brief Kyrgyzstan
274  * @var KH
275  *	@brief Cambodia
276  * @var KI
277  *	@brief Kiribati
278  * @var KM
279  *	@brief Comoros
280  * @var KN
281  *	@brief Saint Kitts and Nevis
282  * @var KP
283  *	@brief Democratic People's Republic of Korea
284  * @var KR
285  *	@brief Republic of Korea
286  * @var KW
287  *	@brief Kuwait
288  * @var KY
289  *	@brief Cayman Islands
290  * @var KZ
291  *	@brief Kazakhstan
292  * @var LA
293  *	@brief Lao People's Democratic Republic
294  * @var LB
295  *	@brief Lebanon
296  * @var LC
297  *	@brief Saint Lucia
298  * @var LI
299  *	@brief Liechtenstein
300  * @var LK
301  *	@brief Sri Lanka
302  * @var LR
303  *	@brief Liberia
304  * @var LS
305  *	@brief Lesotho
306  * @var LT
307  *	@brief Lithuania
308  * @var LU
309  *	@brief Luxembourg
310  * @var LV
311  *	@brief Latvia
312  * @var LY
313  *	@brief Libyan Arab Jamahiriya
314  * @var MA
315  *	@brief Morocco
316  * @var MC
317  *	@brief Monaco
318  * @var MD
319  *	@brief Republic of Moldova
320  * @var ME
321  *	@brief Montenegro
322  * @var MF
323  *	@brief Saint Martin (French part)
324  * @var MG
325  *	@brief Madagascar
326  * @var MH
327  *	@brief Marshall Islands
328  * @var MK
329  *	@brief The Former Yugoslav Republic of Macedonia
330  * @var ML
331  *	@brief Mali
332  * @var MM
333  *	@brief Myanmar
334  * @var MN
335  *	@brief Mongolia
336  * @var MO
337  *	@brief Macao
338  * @var MP
339  *	@brief Northern Mariana Islands
340  * @var MQ
341  *	@brief Martinique
342  * @var MR
343  *	@brief Mauritania
344  * @var MS
345  *	@brief Montserrat
346  * @var MT
347  *	@brief Malta
348  * @var MU
349  *	@brief Mauritius
350  * @var MV
351  *	@brief Maldives
352  * @var MW
353  *	@brief Malawi
354  * @var MX
355  *	@brief Mexico
356  * @var MY
357  *	@brief Malaysia
358  * @var MZ
359  *	@brief Mozambique
360  * @var NA
361  *	@brief Namibia
362  * @var NC
363  *	@brief New Caledonia
364  * @var NE
365  *	@brief Niger
366  * @var NF
367  *	@brief Norfolk Island
368  * @var NG
369  *	@brief Nigeria
370  * @var NI
371  *	@brief Nicaragua
372  * @var NL
373  *	@brief Netherlands
374  * @var NO
375  *	@brief Norway
376  * @var NP
377  *	@brief Nepal
378  * @var NR
379  *	@brief Nauru
380  * @var NU
381  *	@brief Niue
382  * @var NZ
383  *	@brief New Zealand
384  * @var OM
385  *	@brief Oman
386  * @var PA
387  *	@brief Panama
388  * @var PE
389  *	@brief Peru
390  * @var PF
391  *	@brief French Polynesia
392  * @var PG
393  *	@brief Papua New Guinea
394  * @var PH
395  *	@brief Philippines
396  * @var PK
397  *	@brief Pakistan
398  * @var PL
399  *	@brief Poland
400  * @var PM
401  *	@brief Saint Pierre and Miquelon
402  * @var PN
403  *	@brief Pitcairn
404  * @var PR
405  *	@brief Puerto Rico
406  * @var PS
407  *	@brief Occupied Palestinian Territory
408  * @var PT
409  *	@brief Portugal
410  * @var PW
411  *	@brief Palau
412  * @var PY
413  *	@brief Paraguay
414  * @var QA
415  *	@brief Qatar
416  * @var RE
417  *	@brief Reunion
418  * @var RO
419  *	@brief Romania
420  * @var RS
421  *	@brief Serbia
422  * @var RU
423  *	@brief Russian Federation
424  * @var RW
425  *	@brief Rwanda
426  * @var SA
427  *	@brief Saudi Arabia
428  * @var SB
429  *	@brief Solomon Islands
430  * @var SC
431  *	@brief Seychelles
432  * @var SD
433  *	@brief Sudan
434  * @var SE
435  *	@brief Sweden
436  * @var SG
437  *	@brief Singapore
438  * @var SH
439  *	@brief Saint Helena, Ascension and Tristan da Cunha
440  * @var SI
441  *	@brief Slovenia
442  * @var SJ
443  *	@brief Svalbard and Jan Mayen
444  * @var SK
445  *	@brief Slovakia
446  * @var SL
447  *	@brief Sierra Leone
448  * @var SM
449  *	@brief San Marino
450  * @var SN
451  *	@brief Senegal
452  * @var SO
453  *	@brief Somalia
454  * @var SR
455  *	@brief Suriname
456  * @var SS
457  *	@brief South Sudan
458  * @var ST
459  *	@brief Sao Tome and Principe
460  * @var SV
461  *	@brief El Salvador
462  * @var SX
463  *	@brief Sint Maarten (Dutch part)
464  * @var SY
465  *	@brief Syrian Arab Republic
466  * @var SZ
467  *	@brief Swaziland
468  * @var TC
469  *	@brief Turks and Caicos Islands
470  * @var TD
471  *	@brief Chad
472  * @var TF
473  *	@brief French Southern Territories
474  * @var TG
475  *	@brief Togo
476  * @var TH
477  *	@brief Thailand
478  * @var TJ
479  *	@brief Tajikistan
480  * @var TK
481  *	@brief Tokelau
482  * @var TL
483  *	@brief Timor-Leste
484  * @var TM
485  *	@brief Turkmenistan
486  * @var TN
487  *	@brief Tunisia
488  * @var TO
489  *	@brief Tonga
490  * @var TR
491  *	@brief Turkey
492  * @var TT
493  *	@brief Trinidad and Tobago
494  * @var TV
495  *	@brief Tuvalu
496  * @var TW
497  *	@brief Taiwan, Province of China
498  * @var TZ
499  *	@brief United Republic of Tanzania
500  * @var UA
501  *	@brief Ukraine
502  * @var UG
503  *	@brief Uganda
504  * @var UM
505  *	@brief United States Minor Outlying Islands
506  * @var US
507  *	@brief United States
508  * @var UY
509  *	@brief Uruguay
510  * @var UZ
511  *	@brief Uzbekistan
512  * @var VA
513  *	@brief Holy See (Vatican City State)
514  * @var VC
515  *	@brief Saint Vincent and The Grenadines
516  * @var VE
517  *	@brief Bolivarian Republic of Venezuela
518  * @var VG
519  *	@brief British Virgin Islands
520  * @var VI
521  *	@brief U.S. Virgin Islands
522  * @var VN
523  *	@brief Viet Nam
524  * @var VU
525  *	@brief Vanuatu
526  * @var WF
527  *	@brief Wallis and Futuna
528  * @var WS
529  *	@brief Samoa
530  * @var YE
531  *	@brief Yemen
532  * @var YT
533  *	@brief Mayotte
534  * @var ZA
535  *	@brief South Africa
536  * @var ZM
537  *	@brief Zambia
538  * @var ZW
539  *	@brief Zimbabwe
540  */
541 enum dvb_country_t
542 {
543     COUNTRY_UNKNOWN = 0,
544 
545     AD = 1,
546     AE = 2,
547     AF = 3,
548     AG = 4,
549     AI = 5,
550     AL = 6,
551     AM = 7,
552     AO = 8,
553     AQ = 9,
554     AR = 10,
555     AS = 11,
556     AT = 12,
557     AU = 13,
558     AW = 14,
559     AX = 15,
560     AZ = 16,
561     BA = 17,
562     BB = 18,
563     BD = 19,
564     BE = 20,
565     BF = 21,
566     BG = 22,
567     BH = 23,
568     BI = 24,
569     BJ = 25,
570     BL = 26,
571     BM = 27,
572     BN = 28,
573     BO = 29,
574     BQ = 30,
575     BR = 31,
576     BS = 32,
577     BT = 33,
578     BV = 34,
579     BW = 35,
580     BY = 36,
581     BZ = 37,
582     CA = 38,
583     CC = 39,
584     CD = 40,
585     CF = 41,
586     CG = 42,
587     CH = 43,
588     CI = 44,
589     CK = 45,
590     CL = 46,
591     CM = 47,
592     CN = 48,
593     CO = 49,
594     CR = 50,
595     CU = 51,
596     CV = 52,
597     CW = 53,
598     CX = 54,
599     CY = 55,
600     CZ = 56,
601     DE = 57,
602     DJ = 58,
603     DK = 59,
604     DM = 60,
605     DO = 61,
606     DZ = 62,
607     EC = 63,
608     EE = 64,
609     EG = 65,
610     EH = 66,
611     ER = 67,
612     ES = 68,
613     ET = 69,
614     FI = 70,
615     FJ = 71,
616     FK = 72,
617     FM = 73,
618     FO = 74,
619     FR = 75,
620     GA = 76,
621     GB = 77,
622     GD = 78,
623     GE = 79,
624     GF = 80,
625     GG = 81,
626     GH = 82,
627     GI = 83,
628     GL = 84,
629     GM = 85,
630     GN = 86,
631     GP = 87,
632     GQ = 88,
633     GR = 89,
634     GS = 90,
635     GT = 91,
636     GU = 92,
637     GW = 93,
638     GY = 94,
639     HK = 95,
640     HM = 96,
641     HN = 97,
642     HR = 98,
643     HT = 99,
644     HU = 100,
645     ID = 101,
646     IE = 102,
647     IL = 103,
648     IM = 104,
649     IN = 105,
650     IO = 106,
651     IQ = 107,
652     IR = 108,
653     IS = 109,
654     IT = 110,
655     JE = 111,
656     JM = 112,
657     JO = 113,
658     JP = 114,
659     KE = 115,
660     KG = 116,
661     KH = 117,
662     KI = 118,
663     KM = 119,
664     KN = 120,
665     KP = 121,
666     KR = 122,
667     KW = 123,
668     KY = 124,
669     KZ = 125,
670     LA = 126,
671     LB = 127,
672     LC = 128,
673     LI = 129,
674     LK = 130,
675     LR = 131,
676     LS = 132,
677     LT = 133,
678     LU = 134,
679     LV = 135,
680     LY = 136,
681     MA = 137,
682     MC = 138,
683     MD = 139,
684     ME = 140,
685     MF = 141,
686     MG = 142,
687     MH = 143,
688     MK = 144,
689     ML = 145,
690     MM = 146,
691     MN = 147,
692     MO = 148,
693     MP = 149,
694     MQ = 150,
695     MR = 151,
696     MS = 152,
697     MT = 153,
698     MU = 154,
699     MV = 155,
700     MW = 156,
701     MX = 157,
702     MY = 158,
703     MZ = 159,
704     NA = 160,
705     NC = 161,
706     NE = 162,
707     NF = 163,
708     NG = 164,
709     NI = 165,
710     NL = 166,
711     NO = 167,
712     NP = 168,
713     NR = 169,
714     NU = 170,
715     NZ = 171,
716     OM = 172,
717     PA = 173,
718     PE = 174,
719     PF = 175,
720     PG = 176,
721     PH = 177,
722     PK = 178,
723     PL = 179,
724     PM = 180,
725     PN = 181,
726     PR = 182,
727     PS = 183,
728     PT = 184,
729     PW = 185,
730     PY = 186,
731     QA = 187,
732     RE = 188,
733     RO = 189,
734     RS = 190,
735     RU = 191,
736     RW = 192,
737     SA = 193,
738     SB = 194,
739     SC = 195,
740     SD = 196,
741     SE = 197,
742     SG = 198,
743     SH = 199,
744     SI = 200,
745     SJ = 201,
746     SK = 202,
747     SL = 203,
748     SM = 204,
749     SN = 205,
750     SO = 206,
751     SR = 207,
752     SS = 208,
753     ST = 209,
754     SV = 210,
755     SX = 211,
756     SY = 212,
757     SZ = 213,
758     TC = 214,
759     TD = 215,
760     TF = 216,
761     TG = 217,
762     TH = 218,
763     TJ = 219,
764     TK = 220,
765     TL = 221,
766     TM = 222,
767     TN = 223,
768     TO = 224,
769     TR = 225,
770     TT = 226,
771     TV = 227,
772     TW = 228,
773     TZ = 229,
774     UA = 230,
775     UG = 231,
776     UM = 232,
777     US = 233,
778     UY = 234,
779     UZ = 235,
780     VA = 236,
781     VC = 237,
782     VE = 238,
783     VG = 239,
784     VI = 240,
785     VN = 241,
786     VU = 242,
787     WF = 243,
788     WS = 244,
789     YE = 245,
790     YT = 246,
791     ZA = 247,
792     ZM = 248,
793     ZW = 249
794 }
795 
796 /**
797  * @brief Converts an Unix-like 2-letter Country code into enum dvb_country_t
798  * @ingroup ancillary
799  *
800  * @param name	two-letter Country code.
801  *
802  * @return It returns the corresponding enum dvb_country_t ID. If not found,
803  * 		returns COUNTRY_UNKNOWN.
804  */
805 dvb_country_t dvb_country_a2_to_id (const(char)* name);
806 
807 /**
808  * @brief Converts a 3-letter Country code as used by MPEG-TS tables into
809  *	  enum dvb_country_t
810  * @ingroup ancillary
811  *
812  * @param name	three-letter Country code.
813  *
814  * @return It returns the corresponding enum dvb_country_t ID. If not found,
815  * 		returns COUNTRY_UNKNOWN.
816  */
817 dvb_country_t dvb_country_a3_to_id (const(char)* name);
818 
819 /**
820  * @brief Converts an enum dvb_country_t into Unix-like 2-letter Country code
821  * @ingroup ancillary
822  *
823  * @param id	enum dvb_country_t ID.
824  *
825  * @return It returns the 2-letter country code string that corresponts to the
826  *	   Country. If not found, returns NULL.
827  */
828 const(char)* dvb_country_to_2letters (int id);
829 
830 /**
831  * @brief Converts an enum dvb_country_t into a 3-letter Country code
832  * 	  as used by MPEG-TS tables
833  * @ingroup ancillary
834  *
835  * @param id	enum dvb_country_t ID.
836  *
837  * @return It returns the 3-letter country code string that corresponts to the
838  *	   Country. If not found, returns NULL.
839  */
840 const(char)* dvb_country_to_3letters (int id);
841 
842 /**
843  * @brief Converts an enum dvb_country_t into a Country name
844  * 	  as used by MPEG-TS tables
845  * @ingroup ancillary
846  *
847  * @param id	enum dvb_country_t ID.
848  *
849  * @return It returns a string with the Country name that corresponts to the
850  *	   country. If not found, returns NULL.
851  */
852 const(char)* dvb_country_to_name (int id);
853 
854 /**
855  * @brief Guess the country code from the Unix environment variables
856  * @ingroup ancillary
857  *
858  * @return It returns the corresponding enum dvb_country_t ID. If not found,
859  * 		returns COUNTRY_UNKNOWN.
860  */
861 dvb_country_t dvb_guess_user_country ();
862